import java.util.Arrays;
// 动态数组类
class DynamicArray {
    private int[] array;//数组容量,采用数组形式方便扩容
    private int size;//元素个数

    // 构造函数，初始化数组容量为10
    public DynamicArray() {
        array = new int[10];
        size = 0;
    }

    // 添加元素
    public void add(int element) {
        if (size == array.length) {
            // 数组已满，进行扩容
            int newCapacity = array.length * 2;
            array = Arrays.copyOf(array, newCapacity);
        }
        array[size] = element;
        size++;
    }

    // 删除元素
    public void remove(int index) {
        if (index >= 0 && index < size) {
            for (int i = index; i < size - 1; i++) {
                array[i] = array[i + 1];
            }
            size--;
        }
    }

    // 获取元素
    public int get(int index) {
        if (index >= 0 && index < size) {
            return array[index];
        }
        throw new IndexOutOfBoundsException("索引超出范围");
    }

    // 获取数组大小
    public int size() {
        return size;
    }

    // 获取数组容量
    public int capacity() {
        return array.length;
    }

    // 打印动态数组的所有元素
    public void printArray() {
        for (int i = 0; i < size; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println();
    }
}

public class Homework_3 {
    public static void main(String[] args) {
        // 创建DynamicArray实例
        DynamicArray dynamicArray = new DynamicArray();

        // 添加元素
        dynamicArray.add(1);
        dynamicArray.add(2);
        dynamicArray.add(3);
        System.out.println("After adding elements: ");
        dynamicArray.printArray();//打印全数组

        // 删除元素
        dynamicArray.remove(1); // 删除索引为1的元素，即元素2
        System.out.println("After removing element at index 1: ");
        dynamicArray.printArray();

        // 再次添加元素，观察动态扩容
        dynamicArray.add(4);
        dynamicArray.add(5);
        System.out.println("After adding more elements: ");
        dynamicArray.printArray();

        // 获取并打印特定索引的元素
        System.out.println("Element at index 2: " + dynamicArray.get(2));

        // 打印当前数组的大小和容量
        System.out.println("Size: " + dynamicArray.size());
        System.out.println("Capacity: " + dynamicArray.capacity());
    }
}

